import Vue from 'vue'
import axios from 'axios'
import Qs from 'qs'   //引入方式
import  {message}  from './resetMessage'

/**
 *
 axios 默认异步，例子：getvip() 在gettoken()执行完成后执行
 methods: {
   async gettoken() {
     console.log(111)
     var api = 'http://192.168.1.9/au?ame=vu&pword=n'
     await axios.get(api).then((response) => {                          //请求+await
       this.token = response.data.data.token
     })
   },
   async getvip() {
     await this.gettoken()      // 先获取token值                         请求+await
     this.listLoading = true
     var api = `http://192.168.1.9/history?mode=sreach&token=`
     api = api + this.token
     axios.post(api, this.postdata).then((response) => {
       console.log(response.data.data)
       this.data = response.data.data
       this.listLoading = false
       return
     }, (err) => {
       console.log(err)
     })
   },
}
 * @param err
 */

function  handleErrApi(err) {
  let error="";
  if(err.response===undefined){
    error="请求超时！";
  }else if(err.response.data.errMsg===undefined){
    error="未知错误！";
  }else {
    error=err.response.data.errMsg;
  }
  message.error(error);
}

// 一些公共的属性可以放在这里
const instance = axios.create({
  baseURL:" http://localhost:9091",
  timeout:2000
});
//请求之前添加配置
const axiosConfig=(config)=>{
  config.headers.token='token'//添加请求头
  return config
}
//请求之前添加配置，出现错误
const configError=(error)=>{
  return Promise.reject(error);
}
instance.interceptors.request.use(axiosConfig,configError);

//接口响应成功 200
const afterSuccess=(response)=>{
  return response.data.entity

}
//接口响应失败
const afterError=(error)=>{
  handleErrApi(error)
  return Promise.reject(error);
}
instance.interceptors.response.use(afterSuccess,afterError);

Vue.prototype.$qs = Qs  //全局加载
Vue.prototype.$http = instance;// 将axios添加到 Vue的原型，这样一切vue实例都可以使用该对象

